As computers and computerized database systems become more prevalent in the modern business environment, the information stored in such systems becomes an increasingly valuable corporate asset. A large corporate database system typically stores such standard data as customer lists, account balances, payment schedules, as well as a host of other information that can only be obtained by interpreting the standard data such as customer spending patterns, customer preferences, etc. The ability to effectively use and interpret all the information stored in a database can give a company an edge over its competitors.
Despite the theoretical value of the information stored in a database, as a practical matter, the information is only as valuable as it is accessible. Presently, large databases such as those used by a business are typically operated using complex database management systems. These systems typically have their own unique query language that not only depends upon the architecture of the database, whether it be object-oriented, relational, or hierarchical, etc., but also can vary according to the manufacturer of the database management system. Before a user can store and retrieve data with a database management system, it is often necessary to learn how to use the particular user interface for the database and/or the particular query language provided by the manufacturer of the system. The training is not only time consuming but must often be repeated if a company uses several different database systems that have a different user interface and query language.
One of the more common types of user interfaces provided by a database management system is a form-based interface. In order to use and search such a database, a user is shown a pictorial representation of a form on a video terminal. The particular form shown is related to the data or information that is being searched. For example, if a user wishes to search the database for a particular customer, a form is generated by the user interface that contains blanks for the customer's name, address, account balance, etc. The customer then enters data into one or more of the blanks. The data entered into the blanks define a set of query constraints that are combined to create a database query. The database query is then executed by the database management system to retrieve all instances of the stored data meeting the query constraints.
The biggest impediment to creating database interfaces that are easier to use and more uniform from one database to another is the fact that the computer software that generates the user interface is coupled to the structure of underlying data stored in the database. This is often the case because the manufacturer of the database management system first determines how the data will be stored on the database and what relationships are possible between the various data items. Once the architecture of the database has been designed, the manufacturer then designs a user interface that reflects the database architecture, or that generates queries in a data manipulation language that is specific to the architecture of the database. However, if the underlying data structure of the database is changed by adding a new field or changing a relationship between the various items of data stored, the software that generates the user interface must be recoded and recompiled in order to reflect the change in the database structure.
In the form-based user interface described above, if a new type of data is added or a new relationship is defined among the data stored, the software that generates the forms must be recoded and recompiled to reflect changes in the forms produced. Often the relationships between stored data and the corresponding user interface are subtle and a change may affect the user interface in non-obvious ways. Therefore, a significant amount of debugging may be required before the user interface properly reflects a change made in the underlying database.
To overcome the problem of requiring a user to learn a new user interface and/or the underlying query language of a database before a user can use a database, it is desirable to generate a database user interface that is not tightly coupled to the structure of the underlying data. The user interface should be flexible so that if a change is made to the underlying database schema or model, the interface will adapt dynamically to reflect the change without the need to recode and recompile the software that generates the user interface. Additionally, the database interface should be adaptable to work with various types of database systems, thereby allowing a user to use the same database user interface regardless of the database's query language or underlying modeling constructs.